import request from '@/utils/request'

// OSS文件上传相关接口

/**
 * 上传单个文件到OSS
 * @param {FormData} data 包含文件的FormData
 * @returns {Promise}
 */
export function uploadFile(data) {
  return request({
    url: '/oss/upload',
    method: 'post',
    data: data,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 批量上传文件到OSS
 * @param {FormData} data 包含多个文件的FormData
 * @returns {Promise}
 */
export function uploadFiles(data) {
  return request({
    url: '/oss/uploads',
    method: 'post',
    data: data,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 删除OSS文件
 * @param {string} fileUrl 文件URL
 * @returns {Promise}
 */
export function deleteFile(fileUrl) {
  return request({
    url: '/oss/delete',
    method: 'delete',
    params: {
      fileUrl: fileUrl
    }
  })
}

/**
 * 检查文件是否存在
 * @param {string} fileUrl 文件URL
 * @returns {Promise}
 */
export function checkFileExists(fileUrl) {
  return request({
    url: '/oss/exists',
    method: 'get',
    params: {
      fileUrl: fileUrl
    }
  })
}

/**
 * 获取文件访问URL
 * @param {string} fileName 文件名
 * @returns {Promise}
 */
export function getFileUrl(fileName) {
  return request({
    url: '/oss/url',
    method: 'get',
    params: {
      fileName: fileName
    }
  })
}

/**
 * 获取带签名的文件访问URL（临时访问）
 * @param {string} fileName 文件名
 * @param {number} expireTime 过期时间（秒）
 * @returns {Promise}
 */
export function getSignedUrl(fileName, expireTime = 3600) {
  return request({
    url: '/oss/signed-url',
    method: 'get',
    params: {
      fileName: fileName,
      expireTime: expireTime
    }
  })
}
